package com.zyc.strategyMode;

/**
 * 策略模式很像简单工厂模式
 * 策略模式将实例封装在context中，配置后才提供给调用方使用。
 * 工厂模式只管生产实例，具体怎么使用由调用方决定
 * @author zyc
 * @create 2022--06--10 15:21
 */
public class CashContext {
    private CashSuper cash;

    public CashContext(String type) {
        if (type.equals("正常收费")) {
            cash = new CashNormal();
        } else if (type.equals("满300反100")) {
            cash = new CashReturn(300, 100);
        } else if (type.equals("打8折")) {
            cash = new CashRebate(0.8);
        }
    }

    public double getResult(double money) {
        return cash.acceptCash(money);
    }


}
